# 作者： 李泉志
# 2025年01月05日18时28分秒
# 2947029073@qq.com

"""
2.1 元组的定义
• Tuple（元组）与列表类似，不同之处在于元组的元素不能修改
– 元组表示多个元素组成的序列
– 元组在Python开发中，有特定的应用场景
    • 用于存储一串信息，数据之间使用 ',' 分隔
    • 元组用 () 定义
    • 元组的索引从 0 开始
– 索引就是数据在元组中的位置编号
"""


def use_tuple():
    """
    元组的使用
    """
    info_tuple = ('张三', 25, '男')

    # 遍历元组
    for i in info_tuple:
        print(i)  # 不能print(info_tuple[i])
    print('-' * 50)
    for i in info_tuple:
        print(info_tuple.index(i))  # 输出索引
    print('-' * 50)
    # 访问元组元素
    print(info_tuple[0])
    # 统计计数
    print(f'元组中男的个数为{info_tuple.count('男')}')
    print(f'元组长度为：{len(info_tuple)}')


def use_str():
    """
    格式化字符串
    """
    info_tuple = ('张三', 25, 1.85)
    print("%s的年龄是%d，身高%.2f" % info_tuple)

    # 格式化字符串后面的’()‘本质就是元组
    info_str = "%s的年龄是%d，身高%.2f" % info_tuple
    print(info_str)

    # 元组的输出
    print(f'使用{info_tuple}')


def use_tuple_error():
    """
    元组的错误使用
    """
    a = []
    b = ()
    print(type(a))
    print(type(b))
    c = [1]
    d = (1,)  # 不能是d = (1),这个是int
    print(type(c))
    print(type(d))
    b = (1, 2, 3)
    d = list(b)  # 元组转换为列表,注意元组的元素不能修改
    print(d)


if __name__ == '__main__':
    # use_tuple()
    # use_str()
    use_tuple_error()
